<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      <list-com>
        <template v-slot:head>
          <div>
            <h1>头部</h1>
          </div>
        </template>
        <!-- v-slot:con 简写成  #con  -->
        <template #con>
          <div>
            <h1>内容</h1>
          </div>
        </template>
        <template v-slot:footer>
          <div>
            <h1>脚步</h1>
          </div>
        </template>
      </list-com>
    </div>
    <!-- 子组件------------------------------------------ -->
    <template id="list">
      <div>
        <ul>
          <li v-for="(item,index) in listdata" :key="index">{{item}}</li>
        </ul>
        <!-- 插槽 -->
        <hr />
        <!-- 具名插槽 -->
        <slot name="head"></slot>
        <hr />
        <slot name="con"></slot>
        <hr />
        <slot name="footer"></slot>
      </div>
    </template>
    <script src="vue.js"></script>
    <script>
      // 插槽就是子组件中的提供给父组件使用的一个占位符，用<slot></slot>
      // 表示，父组件可以在这个占位符中填充任何模板代码，
      // 如 HTML、组件等，填充的内容会替换子组件的<slot></slot>标签。
      var vm = new Vue({
        el: '#app',
        data() {
          return {}
        },
        components: {
          listCom: {
            template: '#list',
            data() {
              return {
                listdata: ['闪现', '安宁', '废物']
              }
            }
          }
        }
      })
    </script>
  </body>
</html>
